package com.doubledragon.tiny.ioc;

/**
 * Created by dragon
 *
 * BeanDefinition,一个纯POJO,它将会用于在创建bean时，提取bean中的信息并封装到这个类中,如bean的Class对象等,并持有bean的引用
 * spring中，这个类就还会包括scope、initMethodName、destroyMethodName 等属性当使用xml配置bean时，可与<bean>节点的属性相对应
 * 它将被保存在BeanFactory中，spring容器将会利用它来实例化bean，它用于bean实例化前，属性等的暂存
 */
public class BeanDefinition {
    private Object bean;//创建的bean

    private Class beanClass;//创建的bean的Class对象

    private String beanName;//创建的bean的ClassName

    private PropertyValues propertyValues;//bean的所有属性

    public Object getBean() {
        return bean;
    }

    public void setBean(Object bean) {
        this.bean = bean;
    }

    public Class getBeanClass() {
        return beanClass;
    }

    public void setBeanClass(Class beanClass) {
        this.beanClass = beanClass;
    }

    public String getBeanName() {
        return beanName;
    }

    public void setBeanName(String beanName) {
        this.beanName = beanName;
    }

    public PropertyValues getPropertyValues() {
        return propertyValues;
    }

    public void setPropertyValues(PropertyValues propertyValues) {
        this.propertyValues = propertyValues;
    }
}
